Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
01-05-2026

Inwerkingtreding:
01-05-2026

6.1 Hoe zijn de ingezette uren zorgverleners verdeeld over de kwalificatieniveau's?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 6.1
2# Parameters: ?jaar, ?kwartaal, ?zorgkantoor
3# Ontologie: versie 3.0 of nieuwer
4
5PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
6PREFIX onz-pers: <http://purl.org/ozo/onz-pers#>
7PREFIX onz-g: <http://purl.org/ozo/onz-g#>
8PREFIX onz-org: <http://purl.org/ozo/onz-org#>
9PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
10
11SELECT 
12    (?vestiging AS ?Indeling)
13    ?Kwalificatieniveau
14    (SUM(?gewerkte_uren) AS ?Ingezette_uren_aan_zorgverleners)
15    (SUM(?gewerkte_uren) / SUM(?uren_totaal) * 100 AS ?Percentage)
16{
17    # BIND(2023 AS ?jaar)
18    # BIND("Q3" AS ?kwartaal)
19    # BIND(onz-org:ZorgkantoorMenzis AS ?zorgkantoor)
20
21    BIND(
22        IF(?kwartaal = "Q1", xsd:date(CONCAT(STR(?jaar), "-01-01")),
23        IF(?kwartaal = "Q2", xsd:date(CONCAT(STR(?jaar), "-04-01")),
24        IF(?kwartaal = "Q3", xsd:date(CONCAT(STR(?jaar), "-07-01")),
25        IF(?kwartaal = "Q4", xsd:date(CONCAT(STR(?jaar), "-10-01")),
26        "")))) AS ?start_periode
27    )
28    BIND(?start_periode + "P3M"^^xsd:duration + "-P1D"^^xsd:duration AS ?eind_periode)
29
30    ?overeenkomst 
31        a onz-pers:ArbeidsOvereenkomst ; 
32        onz-pers:heeftOpdrachtnemer ?persoon ;
33        onz-g:hasPart ?overeenkomst_afspraak .
34
35    ?overeenkomst_afspraak
36        a onz-pers:WerkOvereenkomstAfspraak ;
37        onz-g:startDatum ?start_afspraak .
38
39    OPTIONAL { ?overeenkomst_afspraak onz-g:eindDatum ?eind_afspraak }
40
41    FILTER(
42        ?start_afspraak <= ?eind_periode &&
43        (?eind_afspraak >= ?start_periode || !BOUND(?eind_afspraak))
44    )
45
46    ?overeenkomst_afspraak onz-g:isAbout ?functie .                
47    ?functie 
48        a onz-pers:ZorgverlenerFunctie ;
49        onz-g:hasQuality/onz-g:hasQualityValue ?kwal_niveau .
50
51    ?kwal_niveau a onz-pers:ODBKwalificatieWaarde .
52
53    OPTIONAL {
54        ?overeenkomst_afspraak onz-g:isAbout ?locatie_afspraak .
55        ?locatie_afspraak a onz-g:StationaryArtifact .
56    }
57
58    ?inzet
59        a onz-pers:GewerktePeriode ;
60        onz-g:definedBy ?overeenkomst ;
61        onz-g:hasBeginTimeStamp ?start_inzet_datetime ;
62        onz-g:hasQuality/onz-g:hasQualityValue/onz-g:hasDataValue ?uren_totaal .
63
64    OPTIONAL { ?inzet onz-g:hasPerdurantLocation ?locatie_werk }
65
66    BIND(STRDT(SUBSTR(STR(?start_inzet_datetime), 1, 10), xsd:date) AS ?start_inzet)
67
68    FILTER(?start_inzet >= ?start_periode && ?start_inzet <= ?eind_periode)
69    FILTER(?start_inzet >= ?start_afspraak && (?start_inzet <= ?eind_afspraak || !BOUND(?eind_afspraak)))
70
71    {
72        ?kwalificatie_niveau a onz-pers:ODBKwalificatieWaarde .
73    }
74    UNION
75    {
76        BIND("Totaal" AS ?kwalificatie_niveau)
77    }
78
79    BIND(
80        IF(?kwalificatie_niveau = "Totaal" || ?kwal_niveau = ?kwalificatie_niveau, ?uren_totaal, 0)
81        AS ?gewerkte_uren
82    )
83
84    # Bepaal de locatie voor uren. Gebruik urenregistratie. Als die geen locatie bevat, gebruik locatie van contract.
85    # Indien beide ongebonden, dan is ?locatie ook ongebonden.
86    BIND(IF(!BOUND(?locatie_werk), ?locatie_afspraak, ?locatie_werk) AS ?locatie)
87
88    {
89        ?locatie a onz-g:StationaryArtifact ;
90            onz-g:partOf* ?vestiging_uri .
91
92        ?vestiging_uri a onz-org:Vestiging ;
93            onz-g:hasLocalizableArea/onz-g:identifiedBy/onz-g:hasPart/onz-g:hasPart ?postcode_6 ;
94            onz-g:identifiedBy ?vest_nr .
95
96        BIND(IRI(SUBSTR(STR(?postcode_6), 1, STRLEN(STR(?postcode_6)) - 2)) AS ?postcode)
97
98        ?pc_gebied onz-g:identifiedBy ?postcode ;
99                   onz-g:partOf+ ?zk_regio .
100
101        ?zk_regio a onz-org:ZorgkantoorRegio .
102        ?zorgkantoor onz-g:hasOperatingRange ?zk_regio .
103
104        ?vest_nr a onz-org:Vestigingsnummer ;
105                 onz-g:hasDataValue ?vestiging .
106    }
107    UNION
108    {
109        BIND("Organisatie (gecontracteerd + algemeen)" AS ?vestiging)
110    }
111
112    OPTIONAL {
113        ?kwalificatie_niveau rdfs:label ?kwalificatie_label .
114    }
115
116    BIND(
117        IF(?kwalificatie_niveau = "Totaal", "Totaal", ?kwalificatie_label)
118        AS ?Kwalificatieniveau
119    )
120}
121GROUP BY ?vestiging ?Kwalificatieniveau ?kwalificatie_niveau
122ORDER BY ?vestiging ?kwalificatie_niveau